/*** Metodo da Potencia (header) ***/
#ifndef POTENCIA_H
#define POTENCIA_H

#include <iostream>
#include <math.h> // Para usar "pow()" e "sqrt()";
using namespace std;

class matriz;
class potencia
{
    private:
        double autovalor;
        matriz *autovetor;

        void set_autovalor(double novo);     //ok!!!
        void set_autovetor(matriz *novo);    //ok!!!
        void reset_autovetor(void);          //ok!!!

        bool checar_matriz(matriz *mat);       //ok!!!

    public:
        // Construtor e destrutor:
        potencia(void);                         //ok!!!
        ~potencia(void);                        //ok!!!

        double get_autovalor(void);            //ok!!!
        matriz* get_autovetor(void);           //ok!!!

        bool normalizar_matriz(matriz *M);     //ok!!!

        void checar_autovalor_autovetor(matriz *M);      //ok!!!

        bool calcular_potencia_regular(matriz *M, matriz *V, double erro);                //ok!!!
        bool calcular_potencia_inversa(matriz *M, matriz *V, double erro);                //ok!!!
        bool calcular_potencia_deslocada(matriz *M, matriz *V, double erro, double mi);   //ok!!!
};

#endif
